|
Новенький
Группа:
Продвинутые
Сообщений: 7
Награды: 1
Город: Красноярск
Статус: 
| Решил создать монстр-бот, у которого 20000хп, при этом его можно убить с m4 либо с дробана )) за него дают несколько там exp и если в банде, то кол-во человек которые оказались рядом с этим ботом в момент смерти, все экспы умножаются на это число людей, так вот у мну чёт не хочет монстр фурычить, ниже сам код и список ошибок, помогите )) Код: [pwn] В public OnGameModeInit() InitMonsters(); SetTimer("MonsterMove",2000,1); SetTimer("GetKeys",200,1); Конец public OnGameModeInit() Код в самом конце: InitMonsters() { //-5.5228,1522.1177,12.7500 if (IsValidObject(monster_id)); monster_id = CreateObject(3528,-5.5228,1522.1177,12.7500); Monster[0][m_posx] = -5.5228; Monster[0][m_posy] = 1522.1177; Monster[0][m_posz] = 12.7500; Monster[0][m_hlth] = 20000; Monster[0][m_exp] = 10; SetObjectPos(monster_id,Monster[0][m_posx],Monster[0][m_posy],Monster[0][m_posz]); return 1; } //------------------------------------------------------------------------------ public MonsterMove() { new Float:x,Float:y,Float:z; new Float:r1; GetObjectPos(monster_id,Monster[0][m_posx],Monster[0][m_posy],Monster[0][m_posz]); MapIcons[MAX_HOUSES+28][icon_posx] = Monster[0][m_posx]; MapIcons[MAX_HOUSES+28][icon_posy] = Monster[0][m_posy]; MapIcons[MAX_HOUSES+28][icon_posz] = Monster[0][m_posz]; for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerConnected(i)) { GetPlayerPos(i, x, y, z); r1 = GetPlayerDistanceTo(i,Monster[0][m_posx],Monster[0][m_posy],Monster[0][m_posz]); if (r1 < 100 && r1 >= 50) MoveObject(monster_id, x, y, z + 5.0, 20.0); else if (r1 < 50 && r1 >= 5) CreateExplosion(x + random(31) - 15,y + random(31) - 15, z, 3, 1); else if (r1 < 5 && r1 > 0) SetPlayerHealth(i,-50.0); } } return 1; } Float:GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); if (IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a); else GetPlayerFacingAngle(playerid, a); x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); return a; } public GetKeys() { new Float:x,Float:y,Float:z,Float:angle; new Float:r; new string[255]; new keys, updown, leftright; new z1,weaponid; for(new playerid = 0; playerid < MAX_PLAYERS; playerid++) { if(IsPlayerConnected(playerid)) { GetPlayerKeys(playerid, keys, updown, leftright); GetPlayerPos(playerid,x,y,z); r = GetPlayerDistanceTo(playerid,Monster[0][m_posx],Monster[0][m_posy],Monster[0][m_posz]); if (keys == KEY_FIRE && floatcmp(100.0,floatabs®) == 1) { weaponid = GetPlayerWeapon(playerid); z1 = 0; for (new c=0; c<10; c++) { GetXYInFrontOfPlayer(playerid,x,y,c*10); if (floatabs(Monster[0][m_posx] - x) < 5 && floatabs(Monster[0][m_posy] - y) < 5) z1 = 1; } if (z1 == 1 && (weaponid == WEAPON_SHOTGSPA || weaponid == WEAPON_AK47 || weaponid == WEAPON_M4)) { GetPlayerFacingAngle(playerid, angle); Monster[0][m_angle] = angle - 90; SetObjectRot(monster_id,0,0,Monster[0][m_angle]); Monster[0][m_hlth]--; } if (Monster[0][m_hlth] < 1) { for (new a = 0; a < MAX_PLAYERS; a++) { if (IsPlayerConnected(a) && PlayerToPoint(120.0,a,Monster[0][m_posx],Monster[0][m_posy],Monster[0][m_posz])) { new gangnum = playerGang[a]; if (gangnum > 0) { for(new j = 0; j < gangInfo[gangnum][1]; j++) { PlayerPlaySound(gangMembers[gangnum][j], 1068, 0.0, 0.0, 0.0); PLayerInfo[gangMembers[gangnum][j]][pExp] = PLayerInfo[gangMembers[gangnum][j]][pExp] + Monster[0][m_exp]; OnPlayerUpdate(gangMembers[gangnum][j]); GivePlayerWeapon(gangMembers[gangnum][j], WEAPON_ROCKETLAUNCHER, 1); GameTextForPlayer(gangMembers[gangnum][j], "Monster is Destroyed!!!", 3000, 4); SendClientMessage(gangMembers[gangnum][j], COLOR_YELLOW, " *** Áàíäíûé Áîíóñ!!!"); format(string, sizeof(string), " *** Ïîëó÷åíî +%d EXP!! Ïëþñ îäíà ðàêåòà!", Monster[0][m_exp]); SendClientMessage(gangMembers[gangnum][j], COLOR_YELLOW, string); } } else { PlayerPlaySound(a, 1068, 0.0, 0.0, 0.0); PLayerInfo[a][pExp] = PLayerInfo[a][pExp] + Monster[0][m_exp]; OnPlayerUpdate(a); GivePlayerWeapon(a, WEAPON_ROCKETLAUNCHER, 1); GameTextForPlayer(a, "Monster is Destroyed!!!", 3000, 4); format(string, sizeof(string), " *** Ïîëó÷åíî +%d EXP!! Ïëþñ îäíà ðàêåòà!", Monster[0][m_exp]); SendClientMessage(a, COLOR_YELLOW, string); } } } InitMonsters(); } format(string, sizeof(string), "~r~HP:%d", Monster[0][m_hlth]); GameTextForPlayer(playerid, string, 500, 3); } } } } код конец. [/pwn] Ошибки [pwn] C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(4559) : warning 217: loose indentation C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23276) : error 017: undefined symbol "monster_id" C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23276) : error 036: empty statement C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23277) : warning 217: loose indentation C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23277) : error 017: undefined symbol "monster_id" C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23277) : warning 202: number of arguments does not match definition C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23277) : warning 202: number of arguments does not match definition C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23277) : warning 202: number of arguments does not match definition C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23278) : error 017: undefined symbol "Monster" C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23278) : warning 215: expression has no effect C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23278) : error 001: expected token: ";", but found "]" C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23278) : error 029: invalid expression, assumed zero C:\Users\gg\Desktop\gg\gamemodes\gg.pwn(23278) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 7 Errors. [/pwn]
|