GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Castle - 2014. június 08. - 01:04:18

Cím: Játékos halála
Írta: Castle - 2014. június 08. - 01:04:18
Sziasztok!
Van egy kódom ami a chatbe írja ha valaki megölt valakit.
Csak ezzel az a problémám hogyha leesett magasról és abba halt bele vagy ha egy égõ jármûben felrobbant akkor hülyeséget ír oda hogy ki ölte meg.
Valaki megtudná mondani hogy ezt hogyan lehetne kiküszöbölni, hogy úgy írja XY meghalt.?
 
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[500], weaponname[500];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
return 1;
}
Cím: Játékos halála
Írta: SnooP - 2014. június 08. - 09:21:13

public OnPlayerDeath(playerid, killerid, reason)
{
    new string[500], weaponname[500];
        GetWeaponName(reason,weaponname,sizeof(weaponname));
        format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
        SendClientMessageToAll(-1,string);
if(reason == 53)
  {
  SendClientMessage(playerid, -1, \"Leestél, pech\");
  return 1;
  }
 
return 1;
}

 
És ezt így tovább egészen a 51-54-ig.
http://wiki.sa-mp.com/wiki/Weapons -> Reasonok
Magyarázat: Minden halál oknak van egy ID-ja na és ha pl az illetõ meghalt és az oka 53 ami a leesés akkor kiírjuk, hogy mi történjen. Remélem érted :)
Cím: Játékos halála
Írta: Easy0101 - 2014. június 08. - 09:22:38
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[500], weaponname[500];
if(killerid){
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
} else {
format(string,sizeof(string),\"%s (%d) {\"feher\"}meghalt!\",GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
return 1;
}

 
[mod]Javítottam a beágyazást.[/mod]
Cím: Játékos halála
Írta: Castle - 2014. június 08. - 11:26:08
Nem mûködik valamiért.
Valaki megnézné mi a probléma vele?
 
new string[500], weaponname[500];
    if(reason != 47 || reason != 49 || reason != 50 || reason != 51 || reason != 53 || reason != 54)
    {
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
}
if(reason == 47)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Fake Pistol\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 50)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Helicopter Blades\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 51)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Explosion\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 53)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Drowned\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 54)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Splat\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}

 
[mod]Beágyazás javítva![/mod]
Cím: Játékos halála
Írta: kos - 2014. június 09. - 08:33:56
sima if az nem jó ebben az esetben, ugyan azt a dolgot vizsgálod! else if (el) próbáld.  :hmmm:
Cím: Játékos halála
Írta: scripter - 2014. június 09. - 08:45:55
én így csinálnám:
 

#include <a_samp>
public OnPlayerDeath(playerid, killerid, reason)
{
new string[256];
switch(reason)
{
    case 47: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 50: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 51: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 52: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 53: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 54: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: KÉTASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    default:
{
    if(IsPlayerConnected(killerid)) // CSAK BIZTOSRA AKAROK MENNI
   {
       new weaponname[50];
      GetWeaponName(reason,weaponname,sizeof(weaponname));
      format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}megölte {%06x}%s (%d) {FFFFFF}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
            }
            else format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt.\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
}
}
SendClientMessageToAll(-1,string);
return 1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}

 
U.I: lehet nem jó :) , siettem.
Cím: Játékos halála
Írta: Castle - 2014. június 08. - 01:04:18
Sziasztok!
Van egy kódom ami a chatbe írja ha valaki megölt valakit.
Csak ezzel az a problémám hogyha leesett magasról és abba halt bele vagy ha egy égõ jármûben felrobbant akkor hülyeséget ír oda hogy ki ölte meg.
Valaki megtudná mondani hogy ezt hogyan lehetne kiküszöbölni, hogy úgy írja XY meghalt.?
 
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[500], weaponname[500];
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
return 1;
}
Cím: Játékos halála
Írta: SnooP - 2014. június 08. - 09:21:13

public OnPlayerDeath(playerid, killerid, reason)
{
    new string[500], weaponname[500];
        GetWeaponName(reason,weaponname,sizeof(weaponname));
        format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
        SendClientMessageToAll(-1,string);
if(reason == 53)
  {
  SendClientMessage(playerid, -1, \"Leestél, pech\");
  return 1;
  }
 
return 1;
}

 
És ezt így tovább egészen a 51-54-ig.
http://wiki.sa-mp.com/wiki/Weapons -> Reasonok
Magyarázat: Minden halál oknak van egy ID-ja na és ha pl az illetõ meghalt és az oka 53 ami a leesés akkor kiírjuk, hogy mi történjen. Remélem érted :)
Cím: Játékos halála
Írta: Easy0101 - 2014. június 08. - 09:22:38
public OnPlayerDeath(playerid, killerid, reason)
{
    new string[500], weaponname[500];
if(killerid){
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
} else {
format(string,sizeof(string),\"%s (%d) {\"feher\"}meghalt!\",GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
return 1;
}

 
[mod]Javítottam a beágyazást.[/mod]
Cím: Játékos halála
Írta: Castle - 2014. június 08. - 11:26:08
Nem mûködik valamiért.
Valaki megnézné mi a probléma vele?
 
new string[500], weaponname[500];
    if(reason != 47 || reason != 49 || reason != 50 || reason != 51 || reason != 53 || reason != 54)
    {
GetWeaponName(reason,weaponname,sizeof(weaponname));
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}megölte {%06x}%s (%d) {\"feher\"}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
SendClientMessageToAll(-1,string);
}
if(reason == 47)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Fake Pistol\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 50)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Helicopter Blades\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 51)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Explosion\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 53)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Drowned\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}
if(reason == 54)
{
format(string,sizeof(string),\"{%06x}%s (%d) {\"feher\"}meghalt. Indok: Splat\",GetPlayerColor(playerid) >>> 8,GetName(playerid),playerid);
SendClientMessageToAll(-1,string);
}

 
[mod]Beágyazás javítva![/mod]
Cím: Játékos halála
Írta: kos - 2014. június 09. - 08:33:56
sima if az nem jó ebben az esetben, ugyan azt a dolgot vizsgálod! else if (el) próbáld.  :hmmm:
Cím: Játékos halála
Írta: scripter - 2014. június 09. - 08:45:55
én így csinálnám:
 

#include <a_samp>
public OnPlayerDeath(playerid, killerid, reason)
{
new string[256];
switch(reason)
{
    case 47: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 50: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 51: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 52: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 53: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: ASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    case 54: format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt. Indok: KÉTASD\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
    default:
{
    if(IsPlayerConnected(killerid)) // CSAK BIZTOSRA AKAROK MENNI
   {
       new weaponname[50];
      GetWeaponName(reason,weaponname,sizeof(weaponname));
      format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}megölte {%06x}%s (%d) {FFFFFF}játékost. Fegyver: %s\",GetPlayerColor(killerid) >>> 8,GetName(killerid),killerid,GetPlayerColor(playerid)>>>8,GetName(playerid),playerid,weaponname);
            }
            else format(string,sizeof(string),\"{%06x}%s (%d) {FFFFFF}meghalt.\",GetPlayerColor(playerid)>>>8,GetName(playerid),playerid);
}
}
SendClientMessageToAll(-1,string);
return 1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
return name;
}

 
U.I: lehet nem jó :) , siettem.
Cím: Játékos halála
Írta: jana4 - 2014. június 09. - 17:57:16
ScreaM féle megoldás:
http://www.solidfiles.com/d/23c844a0f9/Castle_szkript.pwn
Cím: Játékos halála
Írta: scripter - 2014. június 10. - 16:10:13
azzal hogy máshol kérdezted le a fegyvernevet meg javítottad a játékos szín bugot(ami mellesleg, gondolom a modjában is javítva van) nem látok eltérést az enyémtõl.
Cím: Játékos halála
Írta: jana4 - 2014. június 10. - 17:26:24
Megkérdõjelezel? :D

Elég nagy baj, ha nem látsz semmi változást.


Jobban átlátható és takarékosabb.


De ha nálad nem lényeg a \"minõség\", akkor az a saját munkádra vall.


Különben ez a legegyszerûbb mód ennek a megírására.
Cím: Játékos halála
Írta: Castle - 2014. június 12. - 03:05:34
Köszönöm a válaszokat! Megoldva. Téma zárva.