добавление команд, это как бы должен быть начальный уровень знаний о pawno. тогда иди изучай в соответствующий раздел. в этой теме чисто обсуждение мода и багов, ну и всяких мелочей которые никак не решить. А твои вопросы в принципе все возникают от незнанию основ. Если не изучишь соответствующий материал то вопросов будет все боольше и больше :). строка в чате появляется. просто на добавление этой тсроки есть право только у админа. в помощи команд админа читай
cxmobile, плюй дальше твое дело, я просто замечание сделал. Коди так дальше, только не удивляйся когда из-за неоптимизированности сервер начнет загибаться и виснуть каждые 10 минут :). Код надо делать правильно, а не городить свалку в одной функции из кучи одинаковых действий. Это не только к павн относится, а вообще к программированию в целом. Ты заметил наверно что уже при компиляции мода выскакивает стек ? т.е. уже памяти использовано больше чем должно быть, и там пишет на сколько больше. Часто вижу серваки где куча народу, а реально он пуст т.к. завис. Это результат такого "наплевать" :). Просто я к чему, раз тебе наплевать, то неучи неправильному других, зачем чтобы все также плевали, а потом ой у меня тут не работает и тут глючит. В первую очередь замечание касается твоего огорода при создании тачек :).
Сообщение отредактировал brontozavr - Пятница, 11.03.2011, 12:05
Всем привет. Люди может кто нибудь помочь? я вот мод в мод citylife 1.0.5 добавил пару функций, теперь у меня в самой игре не приходят деньги на руки игроку. что делать? заранее спасибо
cxmobile, плюй дальше твое дело, я просто замечание сделал. Коди так дальше, только не удивляйся когда из-за неоптимизированности сервер начнет загибаться и виснуть каждые 10 минут :). Код надо делать правильно, а не городить свалку в одной функции из кучи одинаковых действий. Это не только к павн относится, а вообще к программированию в целом. Ты заметил наверно что уже при компиляции мода выскакивает стек ? т.е. уже памяти использовано больше чем должно быть, и там пишет на сколько больше. Часто вижу серваки где куча народу, а реально он пуст т.к. завис. Это результат такого "наплевать" :). Просто я к чему, раз тебе наплевать, то неучи неправильному других, зачем чтобы все также плевали, а потом ой у меня тут не работает и тут глючит. В первую очередь замечание касается твоего огорода при создании тачек :).
ну я признаю что я не крутой кодер как другие,тогда объясни как это всё оптимизировать? ну "поучи правильному" нас и меня в целом.просто я не видел альтернативы этим функциям.ни один хороший кодер почему то не хочет делится секретами оптимизациями и разным фишкам. а замечания мы все горазды делать!
VladQW, рабтает. версия сампа только старенькая. 0.3b cxmobile, Не надо быть супер пупер кодером чтобы все привести к нормальному виду ... основное в оптимизации, не надо в моде делать много повторяющихся одинаковых действий, тоже самое к циклам, таймерам и переменным. чем их меньше тем лучше. например в телепортах существует проверка есть рядом игрок или нет. Таких проверок много в моде, из из кучи этих проверок можно сколотить одну. С добавлением тачек ты неверно всем показал, надо было всего лишь предыдущую строку скопировать и вписать свои координаты и ид тачки, и она былабы с бензином и учитываласьбы модом на остальных проверках. Я уже говорил что мне не когда было в финальной версии оптимизацией заниматься. Так вот это может каждый сам сделать. Тут даже много думать не надо чтобы из множества одинаковых действий сделать один сток который будет просто в местах этих действий вызываться. Например те места где меняется позиция игрока, их можно выделить в один сток и координаты задавать лишь в параметрах вызова этого стока. Это для примера. есть куча мест в моде где это все можно урезать стоками. Сами примеры данных сокращений даже писать не буду, т.к. в моде их полно, достаточно взять любой stock. вот еще по оптимизации, кого это интересует http://forum.sa-mp.com/showthread.php?t=153915 . я может позднее если соберусь, выложу версию 3.0 оптимизированную. На данный момент я только на своем сервере мод оптимизировад от и до. Но его выкладывать не буду никогда.
Ну вот самый простой пример в телепортах, сократить вот это
Code
case 0: { GetPlayerPos(playerid,wpX,wpY,wpZ); for(new pwr=0;pwr<MAXPLAYERS;pwr++) { if(IsPlayerConnected(pwr)&&pwr!=playerid&&camer[pwr]==0&&!IsPlayerNPC(pwr)) { new Float:wrpX,Float:wrpY,Float:wrpZ; GetPlayerPos(pwr,wrpX,wrpY,wrpZ); if((floatabs(wpX-wrpX)<50.0)&&(floatabs(wpY-wrpY)<50.0)&&(floatabs(wpZ-wrpZ)<6.0)) { if(camer[pwr]==0) yeswr=1; } } } if(yeswr==1) { SendClientMessage(playerid,COLOR_RED," *Телепортер*: Нельзя телепортироваться когда рядом кто-то есть!"); } else { if(GetPlayerInterior(playerid)>0&&!isPlayerInArea(playerid, WeapTest[0])) { SendClientMessage(playerid,COLOR_RED," *Телепортер*: Телепортироваться можно только на улице!"); } else { if(kassa[playerid]==0) { if(zek[playerid]==0) { if(bank[playerid]>15000) { if(GetPlayerInterior(playerid)==4&&!isPlayerInArea(playerid, WeapTest[0])) ResetPlayerWeapons(playerid); SetPlayerInterior(playerid,0); SetPlayerPos(playerid,-1980.8552,253.6175,35.3494); telepPos[0][playerid]=-1980.8552;telepPos[1][playerid]=253.6175;TelepInter[playerid]=0; bank[playerid]-=15000; format(string, sizeof(string), " Игрок %s ушел в WANG CARS в SF.", PlayerName(playerid)); SendClientMessageToAll(COLOR_YELLOW, string); DriveProgress[playerid]=0; teleport[playerid]=1; TextUpdate(playerid); } else { SendClientMessage(playerid,COLOR_YELLOW," *Банкир*: У вас мало денег в банке, надо 15000$"); } } else { SendClientMessage(playerid,COLOR_YELLOW," *Диспетчер*: Ага сбежать захотел гад, введите /zalog или жди окончания срока"); } } else SendClientMessage(playerid,COLOR_LIGHTGREEN," *Мафия*: Нельзя телепортироваться во время выживания!"); } } }
можно так
Code
case 0: { if(IsPlayerDistanceToPlayer(playerid,70)==1) { MenuINFO(playerid,"Информация","Нельзя телепортироваться когда рядом кто-то есть!"); } else { if(GetPlayerInterior(playerid)>0&&!isPlayerInArea(playerid, WeapTest[0])) { MenuINFO(playerid,"Информация","Телепортироваться можно только на улице"); } else { if(kassa[playerid]==0) { if(zek[playerid]==0) { if(bank[playerid]>14000) { if(GetPlayerInterior(playerid)==4&&!isPlayerInArea(playerid, WeapTest[0])) ResetPlayerWeapons(playerid); SetPos(playerid,-1980.8552,253.6175,35.3494,0); bank[playerid]-=14000; format(string, sizeof(string), " Игрок %s ушел в WANG CARS в SF.", PlayerName(playerid)); SendClientMessageToAll(COLOR_YELLOW, string); DriveProgress[playerid]=0; TextUpdate(playerid); } else MenuINFO(playerid,"Информация","мало денег, надо 15000$"); } else MenuINFO(playerid,"Информация","Ага сбежать захотел гад, введите /zalog или жди окончания срока"); } else MenuINFO(playerid,"Информация","Нельзя телепортироваться во время выживания!"); } } }
основное сокращение это определение есть ли рядом кто вот сам сток
Если сделать такое во всем моде, то во первых размер мода уменьшится, во вторых памяти будет меньше занимать и быстрей немного выполняться, но разница в скорости работы вообще практически не заметна, зато лагов становится меньше в разы. .. извиняюсь за корявость приведенных примеров, я просто по быстрому чтобы скопировать и вставить
Сообщение отредактировал brontozavr - Пятница, 11.03.2011, 16:27
Бронт Спасибо!и извини меня,я просто действую по шаблонам из других модов и не замечаю таких простых вещей ,я с математикой не в ладах но мне нравится это дело. да и в 2.03 я копался только из любопытства