darky3697 Posté(e) le 28 décembre 2015 Share Posté(e) le 28 décembre 2015 Hey, j'ai re-pris le dev en sourcepawn il y a quelque jours après 2 ans de pause :o. J'ai fait ça vite fait, (après 1h à chercher j'ai toujours pas réussit donc je post :p) Le plugin sert à re-définir un capitaine après ça mort. Si vous avez besoin d'autre partie du code ou de variables dîtes le moi. PS: Il manque surrement des accolades mais pas de panique je n'ai pas copié tout mon event player_death. public OnPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) { new victim = GetClientOfUserId(GetEventInt(event, "userid")); if (victim > 0) { if (GetClientTeam(victim) == 3) { if(victim == g_CaptainCT) { g_CaptainCT = -1; CPrintToChatAll("ETAPE 1: ok"); do { random2 = GetRandomInt(1, MaxClients); CPrintToChatAll("ETAPE 2: ok"); if(IsClientInGame(random2) && IsPlayerAlive(random2) && GetClientTeam(random2) == 3) { CPrintToChatAll("ETAPE 3: ok"); GetClientName(random2, g_sCapitaineName, sizeof(g_sCapitaineName)); CPrintToChatAll("%s : Le nouveau capitaine est : {blue}%s{default}.", LOGO, g_sCapitaineName); chosen = true; g_CaptainCT = random2; CPrintToChatAll("ETAPE 4: ok"); } } while(!chosen); } Voilà donc en gros on passe pas l'étape 2. En vous remerciant Cdt, Moulman (Oh oui tu aimes mon pseudo :p) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kriax Posté(e) le 28 décembre 2015 Share Posté(e) le 28 décembre 2015 Refais ton code, t'as pas besoin de while pour faire un choix aléatoire ... /* * Reprend un client au hasard * * @param team Index de la team * @return ID du client */ stock int GetRandomPlayer(int team) { int[] client = new int[MaxClients+1]; int count; for (int i = 1; i <= MaxClients; i++) { if(!IsClientInGame(i) && !IsClientConnected(i)) continue; if(team != GetClientTeam(i)) continue; client[count++] = i; } return (count == 0) ? -1 : client[GetRandomInt(0, count-1)]; } if(victim == g_Captain) { g_CaptainCT = GetRandomPlayer(3); if(g_CaptainCT != -1) PrintToChatAll("Le nouveau capitaine est %N", g_CaptainCT); } Grosso modo tu peu faire comme ça, à toi de l'adapté pour ton code ^^ do while pour un random ça fais très moches ... C'est super pratique pour sauter des lignes, des kv, et j'en passe ! mais utiliser ce genre de boucle pour faire ça >< Fais ton include avec tes fonctions utile, et met cette fonction dedans :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.