Последнему вроде можно стандатные значения присваивать
PHP код:
#define SetPlayerPos(%0,%1,%2,%3) SetPlayerPos(%0, random(10000), random(10000), random(10000))
Вид для печати
Ну это тоже вариант "троллинга", только в твоём случае получится рекурсия на стадии препроцессинга, когда препроцессор будет бесконечно изменять 1 макрос сам на себя и мод никогда не скомпилируется. Моё же предложение не получится твоим способом реализовать. Хоть бы скомпилировал код, раз не разбираешься в работе макросов...
:hang1: <- начинающий скриптер, незнающий что делать
в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Что произойдет:PHP код:
if(newkeys || oldkeys) OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
1. Переполнится память (STK), это приведет к краху мода!
2. Не будут работать функции в этом паблике
PHP код:
[23:04:44] [debug] #98 00019ed0 in public OnPlayerKeyStateChange (0, 8, 0) from new.amx
[23:04:44] [debug] #99 00019ed0 in public OnPlayerKeyStateChange (0, 8, 0) from new.amx
[23:04:44] [debug] #100 00019ed0 in public OnPlayerKeyStateChange (0, 8, 0) from new.amx
[23:04:45] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
[23:04:45] [debug] Stack pointer (STK) is 0xA6984, heap pointer (HEA) is 0xA6948
[23:04:45] [debug] AMX backtrace:
[23:04:45] [debug] #0 000190b8 in public OnPlayerKeyStateChange (0, 0, 8) from new.amx
[23:04:45] [debug] #1 00019ed0 in public OnPlayerKeyStateChange (0, 0, 8) from new.amx
[23:04:45] [debug] #2 00019ed0 in public OnPlayerKeyStateChange (0, 0, 8) from new.amx
[23:04:45] [debug] #3 00019ed0 in public OnPlayerKeyStateChange (0, 0, 8) from new.amx
Не увидел на этом теме такой вариант, и новые варианты троллинга походу уже не остались, можно только придумать альтернативуЦитата:
Ваш вариант не новый. Произойдёт обычная неуправляемая рекурсия.
Как я уже говорил раньше, "#define true false" - это вчерашний день.
Вот так, без палева объявив макрос перед подключением a_samp, можно заставить функцию TextDrawCreate возвращать целые числа.PHP код:
/*<описание мода, строка 1>*/
/*<описание мода, строка 2>*/
/*<описание мода, строка 3>*/ /*<много табов>*/ #define Text:Text Text
/*...*/
/*<описание мода, строка N>*/
#include <a_samp>
Т.е. вместо
получится:PHP код:
native Text:TextDrawCreate(Float:x, Float:y, text[]);
Для обычных смертных это означает кучу варнингов из-за несовпадения типов (tag mismatch).PHP код:
native TextDrawCreate(Float:x, Float:y, text[]);
И даже если объявить переменные для сохранения текстдравов, как целочисленные (убрать "Text:"), остальные функции всё ещё будут требовать значения типа Text (!)
Ещё макрос:
Тут сразу несколько затрагиваемых функций:PHP код:
#define Float:Get Get
PHP код:
native Float:GetSVarFloat(varname[]);
native Float:GetPlayerDistanceFromPoint(playerid, Float:X, Float:Y, Float:Z);
native Float:GetPVarFloat(playerid, varname[]);
native Float:GetPlayerCameraAspectRatio(playerid);
native Float:GetPlayerCameraZoom(playerid);
native Float:GetVehicleDistanceFromPoint(vehicleid, Float:X, Float:Y, Float:Z);
И ещё порция макросов:
PHP код:
#define PlayerText:Create Create // CreatePlayerTextDraw
#define Menu:Create Create // CreateMenu
#define Text3D:Create Create // Create3DTextLabel
#define PlayerText3D:Create Create // CreatePlayer3DTextLabel
Не знаю, можно ли затролить этим, но заставить скриптера помучиться может :give_heart:
PHP код:
// Подмена функции CreateVehicle.
// Теперь эта функция не создает авто, а удаляет его.
stock z_CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren)
{
return DestroyVehicle(CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay, addsiren));
}
#define CreateVehicle z_CreateVehicle