DM ARENA [Suicide Bug]
#1

So the everything works fine but when i kill myself with a grenade or whatever it throws me out off the DM arena,doesnt respawn me into DM again.Please help,anyone?

Код:
//***************************xxxSpeedxxx's DM ARENA FS**************************
//#define FILTERSCRIPT

//Bagovi: Kad sam sebe ubijes pise ubio te !

#include <a_samp>
#include <zcmd>
new InDM[MAX_PLAYERS];
new Dead[MAX_PLAYERS];

#define     COLOR_GREEN         0x33AA33AA
#define     COLOR_WHITE         0xFFFFFFFF
#if defined FILTERSCRIPT



public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" DM Arena by xxxSpeedxxx v1.0");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else
#endif

//STOCK
stock GetName(playerid)
{
 new pnameid[24];
 GetPlayerName(playerid,pnameid,24);
 return pnameid;
}

public OnPlayerConnect(playerid)
{
    InDM[playerid] = 0;
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(Dead[playerid] == 1)
    {
    SetPlayerHealth(playerid, 100);
    ResetPlayerWeapons(playerid);
    GivePlayerWeapon(playerid, 26, cellmax);
    GivePlayerWeapon(playerid, 28, cellmax);
    GivePlayerWeapon(playerid, 24, cellmax);
    GivePlayerWeapon(playerid, 34, cellmax);
    GivePlayerWeapon(playerid, 16, 20);
    new c = random(3);
    if (c == 0){
    SetPlayerPos(playerid, -1128.71, 1057.77, 1346.41);}
    else if (c == 1){
    SetPlayerPos(playerid, -1038.03, 1036.85, 1341.35);}
    else if (c == 2){
    SetPlayerPos(playerid, -971.10, 1061.41, 1345.02);}
    SetPlayerInterior(playerid, 10);
    SetPlayerVirtualWorld(playerid, 1);
    SetPlayerTeam(playerid, playerid);
    SetPlayerSkin(playerid, 167);
    Dead[playerid] = 0;
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(InDM[playerid] == 1)
    {
    new msg[120], msg2[120];
    format(msg, sizeof(msg), "Ubijen si %s!", GetName(playerid));
    format(msg2, sizeof(msg2),"Ubio te %s!", GetName(killerid));
    SetPlayerWantedLevel(killerid, 0);
    SendClientMessage(playerid, COLOR_GREEN, msg2);
    SendClientMessage(killerid, COLOR_GREEN, msg);
    SetPlayerHealth(killerid, 100);
    SetPlayerSkin(playerid, 167);
    Dead[playerid] = 1;
    SpawnPlayer(playerid);
    new c = random(3);
    if (c == 0){
    SetPlayerPos(playerid, -1128.71, 1057.77, 1346.41);}
    else if (c == 1){
    SetPlayerPos(playerid, -1038.03, 1036.85, 1341.35);}
    else if (c == 2){
    SetPlayerPos(playerid, -971.10, 1061.41, 1345.02);}
    SetPlayerInterior(playerid, 10);
    SetPlayerVirtualWorld(playerid, 1);
    SetPlayerTeam(playerid, playerid);
    GivePlayerWeapon(playerid, 26, cellmax);
    GivePlayerWeapon(playerid, 16, 20);
    GivePlayerWeapon(playerid, 28, cellmax);
    GivePlayerWeapon(playerid, 24, cellmax);
    GivePlayerWeapon(playerid, 34, cellmax);
    }
    return 1;
}

CMD:napustidm(playerid, params[])
{
    if(InDM[playerid] == 0)
    {
    SendClientMessage(playerid, -1, "{FF0000}Nisi u DM areni!");
    return 1;
    }
    else if(InDM[playerid] == 1)
    {
    InDM[playerid] = 0;
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerInterior(playerid, 0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, -1, "{6600CC}Napustio si DM arenu!!");
    return 1;
    }
    return 1;
}

CMD:dmarena(playerid, params[])
{
    if(InDM[playerid] == 1) return SendClientMessage(playerid, -1, "{FF0000}Error: {6600CC}Ti si vec u DM areni!"); // Check back if his in the DM arena!
    InDM[playerid] = 1; // we declared him in the DM arena.
    GameTextForPlayer(playerid, "~b~/napustidm~y~ da izades iz DM arene!", 3000, 4); // a little game text to tell him how to exit if he's bored from the arena.
    SendClientMessage(playerid, -1, "{66FF66}Dobrodosao u DM arenu! {BABABA}"); // Welcoming him to the arena..
    new c = random(3);
    if (c == 0){
    SetPlayerPos(playerid, -1128.71, 1057.77, 1346.41);}
    else if (c == 1){
    SetPlayerPos(playerid, -1038.03, 1036.85, 1341.35);}
    else if (c == 2){
    SetPlayerPos(playerid, -971.10, 1061.41, 1345.02);}
    SetPlayerInterior(playerid, 10);
    SetPlayerVirtualWorld(playerid, 1);
    SetPlayerTeam(playerid, playerid); // setting every player in a team, since every one has a unique playerid
    ResetPlayerWeapons(playerid); // removing his weapons from outside the arena
    SetPlayerColor(playerid, COLOR_WHITE); // setting everyone's color to white, u can change it
    SetPlayerSkin(playerid, 167); // setting his funny skin
    SetPlayerHealth(playerid, 100); // 100 for the health
    GivePlayerWeapon(playerid, 26, cellmax);
    GivePlayerWeapon(playerid, 28, cellmax);
    GivePlayerWeapon(playerid, 24, cellmax);
    GivePlayerWeapon(playerid, 34, cellmax);
    GivePlayerWeapon(playerid, 16, 20); // we gave him the weapons here.

    new str[200], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(str, sizeof(str), "{FFFFFF}%s {BABABA}(ID: %d) se teleportirao u DM arenu! Pridruzi mu se koristeci /dmarena !", name, playerid);
    SendClientMessageToAll(-1, str);// we just announced to everyone that he entered the arena
    return 1;
}
Reply
#2

Indent your code please, I can't understand.
and explain whats the problem?
Reply
#3

When I am in DM arena and throw a bomb that kills me it ports me to the arena cordinates but in the wrong interior and virtual world.
Reply
#4

I believe its something wrong in other filterscript / gamemode. because I can see interiors and virtualworlds being set everytime player spawns.
Incase something affects it, use this:
PHP код:
/***************************xxxSpeedxxx's DM ARENA FS**************************


//Bagovi: Kad sam sebe ubijes pise ubio te !
/*******************************************************************************/
#define FILTERSCRIPT

#include <a_samp>
#include <zcmd>
new InDM[MAX_PLAYERS];
new 
Dead[MAX_PLAYERS];

#define     COLOR_GREEN         0x33AA33AA
#define     COLOR_WHITE         0xFFFFFFFF


public OnFilterScriptInit()
{
    print(
"\n--------------------------------------");
    print(
" DM Arena by xxxSpeedxxx v1.0");
    print(
"--------------------------------------\n");
    return 
1;
}

public 
OnFilterScriptExit()
{
    return 
1;
}

//STOCK
stock GetName(playerid)
{
    new 
pnameid[24];
    
GetPlayerName(playerid,pnameid,24);
    return 
pnameid;
}

public 
OnPlayerConnect(playerid)
{
    
InDM[playerid] = 0;
    return 
1;
}

public 
OnPlayerDisconnect(playeridreason)
{
    return 
1;
}

public 
OnPlayerSpawn(playerid)
{
    if(
Dead[playerid] == 1)
    {
        
SetTimerEx("DM_SpawnPlayerEx"1000false"i"playerid);
    }
    return 
1;
}
forward DM_SpawnPlayerEx(playerid);
public 
DM_SpawnPlayerEx(playerid)
{    
    if(!
IsPlayerConnected(playerid)) return 0;
    
ResetPlayerWeapons(playerid);
    
GivePlayerWeapon(playerid26cellmax);
    
GivePlayerWeapon(playerid28cellmax);
    
GivePlayerWeapon(playerid24cellmax);
    
GivePlayerWeapon(playerid34cellmax);
    
GivePlayerWeapon(playerid1620);
    
SetPlayerHealth(playerid100);
    new 
random(3);
    switch(
c)
    {
        case 
0SetPlayerPos(playerid, -1128.711057.771346.41);
        case 
1SetPlayerPos(playerid, -1038.031036.851341.35);
        case 
2:    SetPlayerPos(playerid, -971.101061.411345.02);
    }
    
    
SetPlayerInterior(playerid10);
    
SetPlayerVirtualWorld(playerid1);
    
SetPlayerTeam(playeridplayerid);
    
SetPlayerSkin(playerid167);
    
Dead[playerid] = 0;
}

public 
OnPlayerDeath(playeridkilleridreason)
{
    if(
InDM[playerid] == 1)
    {
        new 
msg[120], msg2[120];
        
format(msgsizeof(msg), "Ubijen si %s!"GetName(playerid));
        
format(msg2sizeof(msg2),"Ubio te %s!"GetName(killerid));
        
SetPlayerWantedLevel(killerid0);
        
SendClientMessage(playeridCOLOR_GREENmsg2);
        
SendClientMessage(killeridCOLOR_GREENmsg);
        
SetPlayerHealth(killerid100);
        
SetPlayerSkin(playerid167);
        
Dead[playerid] = 1;
    }
    return 
1;
}

CMD:napustidm(playeridparams[])
{
    if(
InDM[playerid] == 0)
    {
        
SendClientMessage(playerid, -1"{FF0000}Nisi u DM areni!");
        return 
1;
    }
    else if(
InDM[playerid] == 1)
    {
        
InDM[playerid] = 0;
        
SetPlayerVirtualWorld(playerid0);
        
SetPlayerInterior(playerid0);
        
SpawnPlayer(playerid);
        
SendClientMessage(playerid, -1"{6600CC}Napustio si DM arenu!!");
        return 
1;
    }
    return 
1;
}

CMD:dmarena(playeridparams[])
{
    if(
InDM[playerid] == 1) return SendClientMessage(playerid, -1"{FF0000}Error: {6600CC}Ti si vec u DM areni!"); // Check back if his in the DM arena!
    
InDM[playerid] = 1// we declared him in the DM arena.
    
GameTextForPlayer(playerid"~b~/napustidm~y~ da izades iz DM arene!"30004); // a little game text to tell him how to exit if he's bored from the arena.
    
SendClientMessage(playerid, -1"{66FF66}Dobrodosao u DM arenu! {BABABA}"); // Welcoming him to the arena..
    
new random(3);
    if (
== 0){
    
SetPlayerPos(playerid, -1128.711057.771346.41);}
    else if (
== 1){
    
SetPlayerPos(playerid, -1038.031036.851341.35);}
    else if (
== 2){
    
SetPlayerPos(playerid, -971.101061.411345.02);}
    
SetPlayerInterior(playerid10);
    
SetPlayerVirtualWorld(playerid1);
    
SetPlayerTeam(playeridplayerid); // setting every player in a team, since every one has a unique playerid
    
ResetPlayerWeapons(playerid); // removing his weapons from outside the arena
    
SetPlayerColor(playeridCOLOR_WHITE); // setting everyone's color to white, u can change it
    
SetPlayerSkin(playerid167); // setting his funny skin
    
SetPlayerHealth(playerid100); // 100 for the health
    
GivePlayerWeapon(playerid26cellmax);
    
GivePlayerWeapon(playerid28cellmax);
    
GivePlayerWeapon(playerid24cellmax);
    
GivePlayerWeapon(playerid34cellmax);
    
GivePlayerWeapon(playerid1620); // we gave him the weapons here.

    
new str[200], name[MAX_PLAYER_NAME];
    
GetPlayerName(playeridnamesizeof(name));
    
format(strsizeof(str), "{FFFFFF}%s {BABABA}(ID: %d) se teleportirao u DM arenu! Pridruzi mu se koristeci /dmarena !"nameplayerid);
    
SendClientMessageToAll(-1str);// we just announced to everyone that he entered the arena
    
return 1;

I used timer to delay setting interior and pos after 1 sec spawn.
Incase other OnPlayerSpawn sets to different VW or Interior
Reply
#5

Not working,he doesnt die now just frezzes in spot with 0 hp xD
Reply
#6

try removing this "SetPlayerSkin(playerid, 167);" from onplayerdeath
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)