-
Csáó!
Én egy olyan scriptet vagy kódot szeretnék, amely skin-t vált, és ha meghal vagy újra spawnol a játékos akkor az maradjon meg neki. A szerveren nincs regisztrálás, simán belépsz, /skin 33, /kill, és utána is a 33-as marad.
Az én gondolatmenetem az volt, hogy ha meghal a játékos, akkor lekérje a skinid-t, és ha spawnol akkor pedig a lekért skinre állítsa be, de nem sikerült megvalósítani a tervemet... :S
Köszi elõre is!
-
Adok egy jobbat!
http://sampforum.hu/index.php?topic=21712.0
-
#include a_samp
#include zcmd
#include sscanf2
CMD:skin(playerid,params[])
{
new skinid;
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid]\");
if(skinid < 0 || skinid > 299) return SendClientMessage(playerid,-1,\"Csak 1-tõl és 299 közt vannak a skinek!\");
SetPlayerSkin(playerid,skinid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerSkin(GetPlayerSkin(playerid),skinid);
return 1;
}
Nem teszteltem!
-
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerSkin(GetPlayerSkin(playerid),skinid);
return 1;
}
Ez nem kell bele.
-
Adok egy jobbat!
http://sampforum.hu/index.php?topic=21712.0
Nem pont ilyenre gondoltam, de azért kösz! (:
Dupla hozzászólás automatikusan összefûzve. ( 2012. június 16. - 11:49:35 )
#include a_samp
#include zcmd
#include sscanf2
CMD:skin(playerid,params[])
{
new skinid;
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid]\");
if(skinid < 0 || skinid > 299) return SendClientMessage(playerid,-1,\"Csak 1-tõl és 299 közt vannak a skinek!\");
SetPlayerSkin(playerid,skinid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerSkin(GetPlayerSkin(playerid),skinid);
return 1;
}
Nem teszteltem!
[/quote]
n(15) : error 017: undefined symbol \"skinid\"
Dupla hozzászólás automatikusan összefûzve. ( 2012. június 16. - 11:51:36 )
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerSkin(GetPlayerSkin(playerid),skinid);
return 1;
}
Ez nem kell bele.
[/quote]
Így pedig halál után nem marad meg a skin. :S:S
-
próbáld meg hogy az onplayerdeath alá oda írod hogy new skinid;
-
próbáld meg hogy az onplayerdeath alá oda írod hogy new skinid;
g:\\SAMP Windows Server\\WARMODE\\TLG WARMOD\\Alap mode\\sskin\\sskin.pwn(14) : error 003: declaration of a local variable must appear in a compound block
g:\\SAMP Windows Server\\WARMODE\\TLG WARMOD\\Alap mode\\sskin\\sskin.pwn(14) : error 010: invalid function or declaration
g:\\SAMP Windows Server\\WARMODE\\TLG WARMOD\\Alap mode\\sskin\\sskin.pwn(17) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
Dupla hozzászólás automatikusan összefûzve. ( 2012. június 16. - 12:02:36 )
Sikerült megoldani h ne legyen benne hiba, de ha meghalok akkor nem marad a skin a beírt skin id-n ):
-
#include a_samp
#include zcmd
#include sscanf2
new skinid;
CMD:skin(playerid,params[])
{
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid]\");
if(skinid < 0 || skinid > 299) return SendClientMessage(playerid,-1,\"Csak 1-tõl és 299 közt vannak a skinek!\");
SetPlayerSkin(playerid,skinid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerSkin(GetPlayerSkin(playerid),skinid);
return 1;
}
-
Én szerintem nem kell semmi a Death alá, meg kéne maradjon a skine..
-
#include <a_samp>
#include <zcmd>
#include <sscanf2>
CMD:skin(playerid,params[])
{
new skinid;
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid]\");
if(skinid < 0 || skinid > 299) return SendClientMessage(playerid,-1,\"Csak 1-tõl és 299 közt vannak a skinek!\");
SetPlayerSkin(playerid,skinid);
SetPVarInt(playerid, \"Skin\", skinid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerSkin(playerid, GetPVarInt(playerid, \"Skin\"));
return 1;
}
-
:confused: :confused: :confused: :-[ :-[ :-[ :-[
egyik sem jó :-[ :-[
-
new skinid[MAX_PLAYERS];
//MÓD ELEJE!!!!!!!!!!!!!!!!!!!!
stock sSetPlayerSkin(playerid,skinid)
{
SetPlayerSkin(playerid,skinid);
skinid[playerid] = skinid;
return 1;
}
#define SetPlayerSkin sSetPlayerSkin
//-----------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerSkin(playerid,skinid[playerid]);
return 1;
}
CMD:skin(playerid,params[])
{
new skinid;
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid]\");
if(skinid < 0 || skinid > 299) return SendClientMessage(playerid,-1,\"Csak 1-tõl és 299 közt vannak a skinek!\");
SetPlayerSkin(playerid,skinid);
return 1;
}
A halálnál válthatjátok a skint úgy is eltûnik xD
Itt ez amikor használod a SetPlayerSkin-t, akkor menti egybõl, és spawnnál mindig azt hozza be :)
-
#include a_samp
#include zcmd
#include sscanf
new skin[MAX_PLAYERS];
CMD:skin(playerid,params[])
{
if(sscanf(params,\"d\",skin[playerid])) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid(0-299)]\");
if(skin[playerid] < 0 || skin[playerid] > 299) return SendClientMessage(playerid,-1,\"Csak 0 és 299 közötti id-vel rendelkezõ skinek vannak!\");
SetPlayerSkin(playerid,skin[playerid]);
return 1;
}
public OnPlayerSpawn(playerid) return SetPlayerSkin(playerid, skin[playerid]);
-
#include a_samp
#include zcmd
#include sscanf
new skin[MAX_PLAYERS];
CMD:skin(playerid,params[])
{
if(sscanf(params,\"d\",skin[playerid])) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid(0-299)]\");
if(skin[playerid] < 0 || skin[playerid] > 299) return SendClientMessage(playerid,-1,\"Csak 0 és 299 közötti id-vel rendelkezõ skinek vannak!\");
SetPlayerSkin(playerid,skin[playerid]);
return 1;
}
public OnPlayerSpawn(playerid) return SetPlayerSkin(playerid, skin[playerid]);
g:\\SAMP Windows Server\\WARMODE\\TLG WARMOD\\Alap mode\\skin.pwn(3) : fatal error 100: cannot read from file: \"sscanf\"
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Pedig máshol elfogadja a sscanf-t :S
Dupla hozzászólás automatikusan összefûzve. ( 2012. június 17. - 09:23:14 )
new skinid[MAX_PLAYERS];
//MÓD ELEJE!!!!!!!!!!!!!!!!!!!!
stock sSetPlayerSkin(playerid,skinid)
{
SetPlayerSkin(playerid,skinid);
skinid[playerid] = skinid;
return 1;
}
#define SetPlayerSkin sSetPlayerSkin
//-----------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerSkin(playerid,skinid[playerid]);
return 1;
}
CMD:skin(playerid,params[])
{
new skinid;
if(sscanf(params,\"d\",skinid)) return SendClientMessage(playerid,-1,\"Használat : /skin [skinid]\");
if(skinid < 0 || skinid > 299) return SendClientMessage(playerid,-1,\"Csak 1-tõl és 299 közt vannak a skinek!\");
SetPlayerSkin(playerid,skinid);
return 1;
}
A halálnál válthatjátok a skint úgy is eltûnik xD
Itt ez amikor használod a SetPlayerSkin-t, akkor menti egybõl, és spawnnál mindig azt hozza be :)
[/quote]Ezt áttudnád írni ilylen fajtává?
if (strcmp(cmdtext, \"/respawn\", true) == 0)
{
SpawnPlayer(playerid);
SendClientMessage(playerid, COLOR_LIGHTBLUE, \"Respawnoltál! {ffffff}Rövidebb parancs: {00c0ff}/res{ffffff}!\");
SetPlayerHealth(playerid, 100);
return 1;
}
-
#include < a_samp >
#include < zcmd >
#include < sscanf2 >
CMD:skin( playerid, params[] )
{
new
iSkinID,
szFormat[ 50 ];
if( sscanf( params, \"i\", iSkinID ) ) return SendClientMessage( playerid, 0xFF0000AA, \"Használat: /skin < Skin ID >\" );
if( iSkinID < 0 || iSkinID > 299 ) return SendClientMessage( playerid, 0xFF0000AA, \"HIBA: A Skin ID, csak 0 és 299 között lehet.\" );
SetPlayerSkin( playerid, iSkinID );
format( szFormat, sizeof( szFormat ), \"Átállítottad a skinedet. ID: %d\", iSkinID );
SendClientMessage( playerid, -1, szFormat );
return 1;
}
-
Virgonc, enyémnél nem kell átírni semmit, amikor megváltozik a skine, azt menti, és amíg nem változtatod meg újra úgy is marad :)
-
Virgonc, enyémnél nem kell átírni semmit, amikor megváltozik a skine, azt menti, és amíg nem változtatod meg újra úgy is marad :)
Arra gondoltam, hogy ne CMD:skin... stb legyen, hanem amit írtam példát! :D